home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / examples / opengl / overlay / globjwin.cpp.z / globjwin.cpp
C/C++ Source or Header  |  2002-04-08  |  2KB  |  59 lines

  1. /****************************************************************************
  2. ** $Id:  qt/globjwin.cpp   3.0.3   edited Oct 12 12:18 $
  3. **
  4. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  5. **
  6. ** This file is part of an example program for Qt.  This example
  7. ** program may be used, distributed and modified without limitation.
  8. **
  9. *****************************************************************************/
  10.  
  11. #include <qlayout.h>
  12. #include <qframe.h>
  13. #include <qmenubar.h>
  14. #include <qpopupmenu.h>
  15. #include <qapplication.h>
  16. #include <qmessagebox.h>
  17. #include "globjwin.h"
  18. #include "glteapots.h"
  19.  
  20.  
  21. GLObjectWindow::GLObjectWindow( QWidget* parent, const char* name )
  22.     : QWidget( parent, name )
  23. {
  24.     // Create a menu
  25.     QPopupMenu *file = new QPopupMenu( this );
  26.     file->insertItem( "Exit",  qApp, SLOT(quit()), CTRL+Key_Q );
  27.  
  28.     // Create a menu bar
  29.     QMenuBar *m = new QMenuBar( this );
  30.     m->setSeparator( QMenuBar::InWindowsStyle );
  31.     m->insertItem("&File", file );
  32.  
  33.     // Create a nice frame to put around the OpenGL widget
  34.     QFrame* f = new QFrame( this, "frame" );
  35.     f->setFrameStyle( QFrame::Sunken | QFrame::Panel );
  36.     f->setLineWidth( 2 );
  37.  
  38.     // Create our OpenGL widget.
  39.     GLTeapots* c = new GLTeapots( f, "glteapots" );
  40.  
  41.     // Check if we obtained an overlay
  42.     if ( !c->format().hasOverlay() ) {
  43.     QMessageBox::warning( 0, qApp->argv()[0], 
  44.                   "Failed to get an OpenGL overlay",
  45.                   "OK" );
  46.     }
  47.  
  48.     // Now that we have all the widgets, put them into a nice layout
  49.  
  50.     // Put the GL widget inside the frame
  51.     QHBoxLayout* flayout = new QHBoxLayout( f, 2, 2, "flayout");
  52.     flayout->addWidget( c, 1 );
  53.  
  54.     // Top level layout
  55.     QVBoxLayout* hlayout = new QVBoxLayout( this, 20, 20, "hlayout");
  56.     hlayout->setMenuBar( m );
  57.     hlayout->addWidget( f, 1 );
  58. }
  59.